package com.sinoglobal.ningxia.dialog;

import android.app.AlertDialog;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

import com.sinoglobal.ningxia.R;

/**
 * @author qiwx
 * @createdate 2014-6-25 上午10:16:55
 * @Description: Diolog工具类，根据不同参数，显示不同方法
 */
public class DialogBuilder implements OnClickListener {

	private Context mContext = null;
	public AlertDialog mdialog = null;
	MDialogMethod mTethod = null;

	public DialogBuilder(Context context) {
		mContext = context;

	}

	private void init(int layoutId) {
		try {
			mdialog = new AlertDialog.Builder(mContext).create();
			mdialog.show();
			mdialog.getWindow().setContentView(layoutId);
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	// 只有一条提示语的dialog
	/**
	 * 
	 * @author qiwx
	 * @createdate 2014-6-25 下午2:25:51
	 * @Description:info 是dialog 提示信息 layoutId是布局文件
	 * @type
	 * @throws Exception
	 */
	public void DialogInfo(String info, int layoutId) {
		TextView textInfo;
		init(layoutId);
		textInfo = (TextView) mdialog.getWindow().findViewById(
				R.id.alert_tv_message);
		textInfo.setText(info);

	}

	// 只含有一个提示语和一个按钮
	/**
	 * 
	 * @author qiwx
	 * @createdate 2014-6-25 下午2:26:32
	 * @Description:mTethod 调用者可以重写此接口方法，实现符合自己的代码
	 * @type
	 * @throws Exception
	 */
	public void Dialogbtn1(String info, int layoutId,
			final MDialogMethod mTethod) {
		this.mTethod = mTethod;
		TextView textInfo;
		init(layoutId);
		mdialog.getWindow().findViewById(R.id.alert_btn_confirm)
				.setOnClickListener(this);
		textInfo = (TextView) mdialog.getWindow().findViewById(
				R.id.alert_tv_message);
		textInfo.setText(info);

	}

	/**
	 * 
	 * @author qiwx
	 * @createdate 2014-6-25 下午2:26:32
	 * @Description:mTethod 调用者可以重写此接口方法，实现符合自己的代码
	 * @type
	 * @throws Exception
	 */
	// 包含两个按钮
	public void Dialogbtn2(String info, int layoutId,
			final MDialogMethod mTethod) {
		this.mTethod = mTethod;
		TextView textInfo;
		init(layoutId);
		mdialog.getWindow().findViewById(R.id.alert_btn_confirm)
				.setOnClickListener(this);
		mdialog.getWindow().findViewById(R.id.alert_btn_cancel)
				.setOnClickListener(this);
		textInfo = (TextView) mdialog.getWindow().findViewById(
				R.id.alert_tv_message);
		textInfo.setText(info);

	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.alert_btn_confirm:
			mTethod.dialogOk();
			break;
		case R.id.alert_btn_cancel:
			mTethod.dialogCancel();
			break;
		}
	}
}
